// 环境变量工具函数
import config from '../config'

// 获取环境变量
export const getEnvVar = (key: string, defaultValue?: string): string => {
  // 首先尝试从import.meta.env获取
  if (import.meta.env && import.meta.env[key]) {
    return import.meta.env[key]
  }
  
  // 然后尝试从process.env获取
  if (typeof process !== 'undefined' && process.env && process.env[key]) {
    return process.env[key] || ''
  }
  
  // 返回默认值
  return defaultValue || ''
}

// 获取布尔值环境变量
export const getEnvVarBoolean = (key: string, defaultValue: boolean = false): boolean => {
  const value = getEnvVar(key, String(defaultValue)).toLowerCase()
  return value === 'true' || value === '1' || value === 'yes' || value === 'on'
}

// 获取数字环境变量
export const getEnvVarNumber = (key: string, defaultValue: number = 0): number => {
  const value = getEnvVar(key, String(defaultValue))
  const num = Number(value)
  return isNaN(num) ? defaultValue : num
}

// 检查是否为开发环境
export const isDev = (): boolean => {
  return config.env.isDevelopment
}

// 检查是否为生产环境
export const isProd = (): boolean => {
  return config.env.isProduction
}

// 检查是否为测试环境
export const isTestEnv = (): boolean => {
  return config.env.isTest
}

// 获取API基础URL
export const getApiBaseUrl = (): string => {
  return config.api.baseURL
}

// 获取应用名称
export const getAppName = (): string => {
  return config.app.APP_NAME
}

// 获取公司名称
export const getCompanyName = (): string => {
  return config.app.COMPANY_NAME
}

// 获取版权年份
export const getCopyrightYear = (): number => {
  return Number(config.app.COPYRIGHT_YEAR)
}

// 导出所有工具函数
export {
  config,
}

// 默认导出
export default {
  getEnvVar,
  getEnvVarBoolean,
  getEnvVarNumber,
  isDev,
  isProd,
  isTestEnv,
  getApiBaseUrl,
  getAppName,
  getCompanyName,
  getCopyrightYear,
  config,
}